Inleiding

Als je, bij starten, in 1 keer alle hardware van spanning (230V) voorziet, ontstaat er een ongewenste spannings/stroompiek. Om dit te voorkomen is het beter om de hardware in stappen van spanning te voorzien.

Hardware is, in dit geval:

·          Trein Trafo’s

·          3V3 converters/adapters (bijvoorbeeld voor digitale componenten zoals PIC/ESP)

·          5V converters/adapters  (bijvoorbeeld voor digitale componenten zoals Raspberry, PIC/ESP of LEDs)

·          12V converters/adapters (bijvoorbeeld voor licht)

·          230V (LED) verlichting

Ook kan dit gebruikt worden om niet gebruikte hardware uit te schakelen en naar behoefte weer in te schakelen.

Voorbeelden hiervan zijn:

·          Adapters voor nacht verlichting

·          Trein Trafo’s voor ongebruikte baanvakken (meestal rangeer vakken)

Niet alle adapters/trafo’s hoeven apart aan/uit gezet te worden, dit kan ook gebeuren in blokken en/of het schakelen van een stekkerblok (maar hierbij moet wel gelet worden op het schakelvermogen van het relais).

Hardware kan zowel handmatig als automatisch aan/uit gezet worden. Hiervoor heeft iedere output een handmatige en een software schakelaar.

 

Nov 2023: Tekst vanaf hier wordt met laatste info eerst

Hardware opgebouwd met SIOP PCB in plaats van PCF8574. In een 6 inch rack behuizing. Initiele uitwerking was met PCA8574 maar eerst gedaan met SIOP PCB in een SOP control concept, om dit beter te testen.

 

Omdat er nu meerdere projects (SOP en PowerControl) met PlatformIO zijn, hoort dit eigenlijk met een shared library te zijn. Voor PowerControl wordt dit de eerste opzet, later wordt SOP control ook met deze shared library.

 

17 dec 2023: Library is nagenoeg gereed, is pins stap voor stap aanzetten werkt (met 600ms interval). Is in 3D printed 6 inch rack (geel) gebouwd met 8 relais blok van AliExpress.

 

Next is met schakelaar voor manual mode. Pin usage wordt dan:

 

SPI Pins

D1 (GPIO5) = !SPI Reset

D5 (GPIO14) = SPI CLK

D6 (GPIO12) = SPI MISO

D7 (GPIO13) = SPI MOSI

D8 (GPIO15) = !CS

 

D0 (GPIO16) = Heartbeat LED (intern)

D2 (GPIO4) = Manual switch

 

NodeMCU heeft (2 interne) LEDS, D0 wordt gebruikt voor heartbeat.

D2 kan voor de schakelaar gebruikt wordt.

Misschien een extra LED om de WiFi status te laten zien.

En ook nog 8 LEDs maken die aan de voorkant de status van alle pins laten zien, dit dan met een schuifregister was een eerste optie, maar hiervoor zijn er niet genoeg GPIO’s, zie hieronder.

 

Voor de 8 LEDs wordt PortB van de MCP23S17 gebruikt, er gaan dus maar 8 output relais worden aangestuurd, in eerste instantie is dit meer dan genoeg.

 

Hieronder is uitwerking voor schuifregister, is niet haalbaar, er zijn te weinig pinnen.

Blijft over D3 (GPIO0), D4 (GPIO2), D9/RX (GPIO3), D10/TX (GPIO1), D11/S2 (GPIO9), D12/S3 (GPIO10)

D10/GPIO1 (TX), D9/GPIO3 (RX), D11/GPIO9 (S2) en D12/GPIO10 (S3) worden niet vaak als GPIO pins gebruikt, ze hebben restricties.

 

D3, D4 en D8 worden tijdens boot gebruikt, je kan ze daarna ‘gewoon’ gebruiken als ze maar niet LOW zijn bij boot (D8 is al in gebruik als SPI CS).

A0 kan niet als GPIO worden gebruikt

 

Schuifregister 74HC595 heeft 5 pins nodig:

D3 (GPIO0) = Data

D4 (GPIO2) = CLK

A0 (GPIO??) = Latch. A0 is analog input, kan niet als GPIO output worden gebruikt

D1 (GPIO5) = !Reset (shared met SPI !reset, alleen bij begin reset toggle, en dan eerst voor init shift register en dan voor init MCP23S17, want MCP23S17 wordt bij init geconfigureerd en 74HC595 niet)

?? (GPIO??) = !Enable (kan vast aan Gnd, output is always enabled)

Je komt dus 1 pin tekort, dit wordt ‘m dus niet.

 

Vanaf hier initiele tekst, begonnen in 2019

Uitwerking

Uitgaande van zo’n 16 output mogelijkheden, maar een echte inventarisatie moet nog, is dan:

·          16 input pins voor 16 schakelaars

·          16 output pins voor 16 indicatie LEDs

·          16 output pins voor 16 relais

 

Kan bijvoorbeeld met een PIC16F / PIC18F. Het geheel moet wel aangestuurd kunnen worden voor software switching. Dit kan met SPI aan een Raspberry.

48 poorten is erg veel, met I/O expanders doen, met een I2C PCF8475P of PCF8574AP.

Een PCF8574 heeft 8 poorten, dus 2 PCF’s per type: 2 voor Relais, 2 voor LEDs en 2 voor schakelaar, is 6x PCF8574.

 

Ook kijken of het nodig is om alle hardware aan/uit te zetten met een schakelaar. De rij-treintrafo’s hoeven misschien niet. Dit spaart schakelaars en input-pins.

 

Logisch schema:

PIC,Low voltage, Locking, On/Off switch,Switch commands,status,indicator LED (sinking),spi aan raspberry,relais (board)
 

 

 

 

 

 

 

 


Onderdelen:

Relais 5V / 230V, 2A. 16x. Op board AliExpress, 4 relais per board inclusief optocoupler

PCF8574P of AP, 6x

PIC16 of PIC18, 1x

Optocoupler PC817, 16x

 

Prototype ontwikkeling

Is uiteindelijk ESP Nr 12 geworden maar 1ste test gaat met ESP Module Nr 11, NodeMCU CHG340, AliExpress 90027651421447, 16 Juli 2019. NodeMCU geprikt op NodeMCU Base V1.0 prototypeboard, AliExpress 900089233891447, 29 maart 2019, deze naast groot breadboard vastgemaakt. Bij Power plug staat 6-24V, maar 5V werkt vooralsnog ook. Voltage pins lijken alleen maar output te zijn, geen input.

Met USB aan PC, geeft COM5, met Apparaatbeheer baudrate op 115200. Met ESPlorer.bat connect naar COM5, 115200 baud en bekeken:

AT+GMR

AT version:1.1.0.0(May 11 2016 18:09:56)

SDK version:1.5.4(baaeaebb)

compile time:May 20 2016 15:08:19

AT+CIPAPMAC?

+CIPAPMAC:"2e:f4:32:20:b9:8b"

Met tablet WiFi bekeken,  SSID=ESP_20B98B, password thereisnospoon. Verbonden maar verder kan je niet veel.

Met ESPFlasher firmware van 20 mei 2019 (integer) erop (je moet de bin filename intikken), output is dan:

23:08:37.048 -> NodeMCU custom build by frightanic.com

23:08:37.048 -> branch: master

23:08:37.048 -> commit: 4905381c004bdeaf744a60bb940c1906c2e052d4

23:08:37.048 -> SSL: false

23:08:37.048 -> modules: adc,file,gpio,http,i2c,mdns,mqtt,net,node,ow,pcm,pwm,spi,tmr,uart,wifi,ws2801,ws2812,ws2812_effects

23:08:37.082 ->  build created on 2019-05-20 18:35

23:08:37.082 ->  powered by Lua 5.1.4 on SDK 2.2.1(6ab97e9)

23:08:37.150 -> lua: cannot open init.lua

23:08:37.150 -> >

Heeft ook SSID ESP20B98B, Is nu dus klaar om te proggen. (Bovenstaande tekst is ook in ESP Modules.docx)

Arduino IDE Sources komen in Projects/PowerStartup, hardware eerst op breadboard

1Ste POC: BlinkPattern=LED (aan D0) dat eerst 1x flitst, dan 2x, dan 3x t/m 10 keer en dan weer 1x, 2x etc. LED wordt gesinkt; cathode aan D0, anode aan Gnd.

 

Nov 2023: PowerControl gemaakt met SIOP PCB in plaats van met PCF8574, is om SIOP PCB nog beter te testen. Later misschien met PCF8574, als er niet genoeg SIOP PCB boards meer zijn.

 

Vanaf hier de documentatie omgedraaid: nieuwste info staat bovenaan.